//
// Created by hamlet on 23-6-20.
//

#ifndef COMPILERS_INTERPRETER_H
#define COMPILERS_INTERPRETER_H

#include <vector>
#include "Quad.h"
#include "Sem.h"

// 解释执行器
class Interpreter {
public:
    const std::vector<std::string> &idList;  // 标识符表
    const std::vector<int> &valueIntList;  // 整形常数表
    const std::vector<Quad> &quads;  // 四元式序列
    std::vector<int> idValue;  // 变量值表
    std::vector<int> tmpValue;  // 寄存器表

    explicit Interpreter(const Sem &sem);

    void execute();
};


#endif //COMPILERS_INTERPRETER_H
